Disk drives are information storage systems that use at least one rotatable disk with concentric data tracks containing the information, a transducer (or head) for reading data from or writing data to the various tracks, and a transducer positioning actuator connected to the transducer for moving it to the desired track and maintaining it over the track during read and write operations. The transducer is attached to a slider, such as an air-bearing slider, which is supported adjacent to the data surface of the disk by a cushion of air generated by the rotated disk. The slider is mounted on a support arm of the transducer-positioning actuator by means of a suspension. The suspension provides dimensional stability between the slider and the actuator arm, controlled flexibility in pitch and roll motion of the slider relative to its direction of motion on the rotating disk, and resistance to yaw motion.
FIG. 1 illustrates in sectional view a schematic of a prior art disk drive. The disk drive comprises a base 1 to which are secured a disk drive motor 4 and an actuator 5, and a cover 2. Typically, there is a gasket 3 located between base 1 and cover 2 and a small breather port (not shown) for equalizing pressure between the interior of the disk drive and the outside environment. A magnetic recording disk 6 is connected to drive motor 4 by means of hub 7 to which it is attached for rotation by the drive motor 4. Magnetic recording disk 6 has a data surface 8 for data to be written to and read from. A read/write head or transducer 9 is formed on the trailing end of a carrier, such as a slider 10. The slider 10 is attached to the actuator 5 by means of a rigid support arm 11 and a flexible suspension 12. The suspension 12 provides a biasing force which urges the slider 10 onto the data surface 8 of the recording disk 6. It should be apparent that a disk storage system may contain multiple disks 6, actuators 5, and suspensions 12. Each actuator 5 may support a number of sliders 10, where each slider 10 may have more than one read/write head 9.
FIG. 2 illustrates a disk surface 8 containing a plurality of concentric data tracks 13 (1 to T+1). Data is written to and read from the tracks 13 in storage units referred to as sectors. Each sector 14 commonly holds 512 bytes of data plus header and trailer information, such as error correction data. In operation, the transducer 9 typically reads several data sectors from the disk surface 8 (or writes several data sectors to the disk surface) in response to an input/output (I/O) command sent by a host computer connected to the disk system.
FIG. 3 depicts the functional block diagram of a representative computer-disk configuration in which a drive 15 is electronically attached to a host computer 16 via a disk controller 17. The disk controller 17 mainly provides a standard communication interface between the computer 16 and various types of disk drives, and necessary error correction for the data transferred between the computer 16 and drive 15. Physically, the controller 17 may be implemented as part of the drive 15 (e.g., an IDE-interface hard disk for PCs) or as a separate unit (e.g., an SCSI-interface disk drive adapter card for PCs). Also, the drive 15 typically includes the necessary electronics 18 to interface with the drive controller 17 and to control the operation of the read/write head 9. In other configurations, a computer 16 may be connected to many controllers 17 and a controller 17 may be attached to several drives 15. Alternatively, several computers 16 may access a single drive 15 via a controller 17.
Before data can be written to or read from the disk surface 8, the actuator 5 must first move the support arm 11 so that the read/write head 9 is over the recording track 13 containing the first sector requested by the command. The elapsed time for this mechanical repositioning of the head is referred to as the seek time. Once the read/write head 9 is positioned over the appropriate track, it must then wait for the first sector requested by the command to rotate under it in order for the writing or reading of data to commence. The elapsed time for this rotation is referred to as the rotational latency time.
Both the seek time and rotational latency time are mechanical delay times. The total mechanical delay time before any data transfer can take place is the sum of the seek time and the rotational latency time. The shorter this total mechanical delay time, the faster the disk system can complete the I/O command.
The disk controller 17 typically maintains a queue of I/O commands to be performed. Each I/O command contains the instruction for the disk drive to read or write the data to a particular position on the disk. An I/O command may be tagged, i.e., it carries a label or a number which allows it to be uniquely identified. If the I/O commands are tagged, then they can be serviced (or executed) by the system out-of-order, i.e., they do not have to be serviced in the order that they arrive at the disk drive.
An example of a tagged command queue is shown in FIG. 4. In this example, the disk drive can be accessed from two different host computers, namely, Host 1 and Host 2. The tag associated with each command identifies the host that makes the request and a unique sequence number. Each I/O command consists of the operation type (Read or Write), a starting block address, and the size of the command in number of blocks.
Since the I/O commands from the host computers are tagged in the command queue, they do not have to be serviced in the order that they arrive at the disk drive. This flexibility in scheduling allows the commands to be serviced in an order in which the mechanical delay time can be opportunistically reduced. From FIG. 4, it is apparent that it is very advantageous to schedule the 8th command to be serviced immediately after the 6th command because the starting address for the 8th command is immediately after the last block read by the 6th command (at address 379825).
Prior art algorithms for reducing mechanical delay time were mainly aimed at reducing the seek time, such as the one referred to as the shortest seek algorithm. This algorithm examines all the commands in the queue and selects the command with the shortest seek distance (and, hence, the shortest seek time), in either direction, from the ending position of the current command to be the next command to be serviced. Another algorithm, referred to as the elevator algorithm, sweeps the head of the disk from the outside diameter of the disk towards the inside diameter of the disk, stopping to service any I/O command that it encounters along the way. When the head reaches the inside diameter of the disk, it reverses direction to sweep outward, again stopping to service any I/O command that it encounters along the way. A variation of the elevator algorithm is the, C-Look algorithm, where the disk drive stops to service I/O commands only during one direction of sweep. Although these algorithms are relatively simple to implement, they may not result in the smallest total mechanical delay time because the seek time is only one of two components of the total mechanical delay time, as described above. A command with a short seek time may have a very long rotational latency time and, hence, a long mechanical delay time.
More recent algorithms are designed to reduce the total mechanical delay time, such as the Rotational Positioning Optimization (RPO) algorithms. RPO algorithms are typically more complex than the seek scheduling algorithms and will be described in detail below in the preferred embodiment. In general, an RPO algorithm operates by having the drive controller maintain a simple model of the seek profile of the drive, which is then used to estimate the mechanical access time for each command in the queue. The controller then selects the command with the smallest estimated access time to be the one to be serviced next. In the ideal case, the drive's actual servo should perform consistently very close to the model. However, in reality, due to a variety of different reasons, there is always some variation in the actual seek time (some drive designs may exhibit more variance, some may have less), making it impossible to accurately predict the seek time 100% of the time. If the actual seek time turns out to be longer than what is estimated, it is possible that by the time the head arrives at the target track, the target sector may have just gone by. The drive then must wait for one disk revolution before it can read the target sector. This situation is commonly referred to as a "missed-revolution", which degrades the performance of the disk system.
One solution for avoiding missed-revolutions is to adopt a more conservative model of the seek profile, so that longer seek times are estimated. Conceivably, when a high enough seek time estimate is used, it is possible to avoid the missed-revolution situation completely. However, this has the net effect of increasing the average service time because the algorithm will now miss out on selecting the optimum command to service much of the time (i.e., the command with the target sector closest to the head's current position without a missed revolution). Thus, such an approach reduces the effectiveness of the RPO algorithm.
Accordingly, there remains a need for a method and apparatus for handling missed revolutions in data storage systems without the above-described disadvantages.